<%@Page Language="VB"%>

<%@Import Namespace="System.Data" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<title>Removing versus Deleting Rows in a DataTable</title>
<!-- #include file="..\global\style.inc" -->
</head>
<body bgcolor="#ffffff">
<span class="heading">Removing versus Deleting Rows in a DataTable</span><hr />
<!--------------------------------------------------------------------------->

<b>The original table contents</b>:
<asp:datagrid id="dgrResult1" runat="server" /><br />
<b>The table contents after Rows(1).Delete()</b>:
<asp:datagrid id="dgrResult2" runat="server" /><br />
<b>The table contents after RejectChanges()</b>:
<asp:datagrid id="dgrResult3" runat="server" /><br />
<b>The table contents after Rows.Remove(1)</b>:
<asp:datagrid id="dgrResult4" runat="server" /><br />
<b>The table contents after RejectChanges()</b>:
<asp:datagrid id="dgrResult5" runat="server" /><br />

<script language="vb" runat="server">

Sub Page_Load()

   'create a new empty Table object
   Dim objTable As New DataTable("NewTable")

   'define four columns (fields) within the table
   objTable.Columns.Add("ISBN", System.Type.GetType("System.String"))
   objTable.Columns.Add("Title", System.Type.GetType("System.String"))
   objTable.Columns.Add("PublicationDate", System.Type.GetType("System.DateTime"))
   objTable.Columns.Add("Quantity", System.Type.GetType("System.Int32"))

   'declare a variable to hold a DataRow object
   Dim objDataRow As DataRow

   'create a new DataRow object instance in this table
   objDataRow = objTable.NewRow()

   'and fill in the values
   objDataRow("ISBN") = "1234567800"
   objDataRow("Title") = "Professional Video Recorder Programming"
   objDataRow("PublicationDate") = "2001-03-01"
   objDataRow("Quantity") = "3956"
   objTable.Rows.Add(objDataRow)

   'repeat to add two more rows
   objDataRow = objTable.NewRow()
   objDataRow("ISBN") = "1234567801"
   objDataRow("Title") = "Professional WAP Phone Programming"
   objDataRow("PublicationDate") = "2001-06-01"
   objDataRow("Quantity") = "29"
   objTable.Rows.Add(objDataRow)

   objDataRow = objTable.NewRow()
   objDataRow("ISBN") = "1234567802"
   objDataRow("Title") = "Professional Radio Station Programming"
   objDataRow("PublicationDate") = "2001-04-01"
   objDataRow("Quantity") = "10456"
   objTable.Rows.Add(objDataRow)

   'call AcceptChanges to accept the changes to the table so far
   objTable.AcceptChanges()

   'assign the DataTable's DefaultView object to the DataGrid control
   dgrResult1.DataSource = objTable.DefaultView
   dgrResult1.DataBind()  'and bind (display) the data

   'now Delete the second row and display the contents again
   objTable.Rows(1).Delete()
   dgrResult2.DataSource = objTable.DefaultView
   dgrResult2.DataBind()

   'call RejectChanges to restore the deleted row
   objTable.RejectChanges()
   dgrResult3.DataSource = objTable.DefaultView
   dgrResult3.DataBind()

   'now Remove the second row from the table
   'note that this is a method of the Rows collection not the Row object
   objTable.Rows.RemoveAt(1)
   dgrResult4.DataSource = objTable.DefaultView
   dgrResult4.DataBind()

   'call RejectChanges - the deleted row is not restored
   objTable.RejectChanges()
   dgrResult5.DataSource = objTable.DefaultView
   dgrResult5.DataBind()

End Sub
</script>


<!--------------------------------------------------------------------------->
<!-- #include file="..\global\foot.inc" -->
</body>
</html>
